home *** CD-ROM | disk | FTP | other *** search
/ Otherware / Otherware_1_SB_Development.iso / mac / hypercar / xcmd / newfolde.sit / NF Source / HyperXCmd.h next >
Text File  |  1989-05-16  |  4KB  |  125 lines

  1. /*
  2.     HyperXCmd.h  Definitions for calling all standard 
  3.     HyperCard callback routines from C.
  4.     ⌐Apple Computer, Inc. 1987
  5.     All Rights Reserved.
  6.  
  7.     See CFlash.C for an example of how to include this module in your 
  8.     C program.
  9. */
  10.  
  11.  
  12. typedef struct XCmdBlock {
  13.     short    paramCount;     
  14.     Handle  params[16];
  15.     Handle  returnValue;      
  16.     Boolean    passFlag; 
  17.       
  18.     char *    entryPoint;    /* to call back to HyperCard */
  19.     short    request;  
  20.     short    result;  
  21.     long    inArgs[8];
  22.     long    outArgs[4];
  23.    } XCmdBlock, *XCmdBlockPtr;
  24.    
  25. typedef struct Str31 {
  26.     char    guts[32];
  27.     } Str31, *Str31Ptr;
  28.  
  29.   /*result codes */
  30. #define    xresSucc         0
  31. #define    xresFail         1 
  32. #define    xresNotImp         2 
  33.   
  34.   /* request codes */
  35. #define    xreqSendCardMessage        1 
  36. #define    xreqEvalExpr            2 
  37. #define    xreqStringLength        3 
  38. #define    xreqStringMatch            4 
  39. #define xreqSendHCMessage        5
  40. #define    xreqZeroBytes             6 
  41. #define    xreqPasToZero            7 
  42. #define    xreqZeroToPas            8 
  43. #define    xreqStrToLong            9 
  44. #define    xreqStrToNum            10 
  45. #define    xreqStrToBool            11 
  46. #define    xreqStrToExt            12 
  47. #define    xreqLongToStr            13 
  48. #define    xreqNumToStr            14 
  49. #define    xreqNumToHex            15 
  50. #define    xreqBoolToStr            16 
  51. #define    xreqExtToStr            17 
  52. #define    xreqGetGlobal            18 
  53. #define    xreqSetGlobal            19 
  54. #define    xreqGetFieldByName        20 
  55. #define    xreqGetFieldByNum        21 
  56. #define    xreqGetFieldByID        22 
  57. #define    xreqSetFieldByName        23 
  58. #define    xreqSetFieldByNum        24 
  59. #define    xreqSetFieldByID        25 
  60. #define    xreqStringEqual           26 
  61. #define    xreqReturnToPas           27 
  62. #define    xreqScanToReturn          28 
  63. #define    xreqScanToZero            39   /* was suppose to be 29!  Oops! */
  64.  
  65.  
  66. /* Forward definitions of glue routines.  Main program 
  67.     must include XCmdGlue.inc.c.  See XCmdGlue.inc.c for 
  68.     documentation of each routine.  */
  69. typedef void (*MyProcPtr) ();
  70.  
  71. extern pascal void SendCardMessage(XCmdBlockPtr paramPtr,StringPtr msg);
  72. extern pascal Handle EvalExpr(XCmdBlockPtr paramPtr,StringPtr expr);
  73. extern pascal long StringLength(XCmdBlockPtr paramPtr,StringPtr strPtr);
  74. extern pascal Ptr StringMatch(XCmdBlockPtr paramPtr,StringPtr pattern,
  75.     Ptr target);
  76.     
  77. extern pascal void ZeroBytes(XCmdBlockPtr paramPtr,Ptr dstPtr,
  78.     long longCount);
  79. extern pascal Handle PasToZero(XCmdBlockPtr paramPtr,StringPtr pasStr);
  80. extern pascal void ZeroToPas(XCmdBlockPtr paramPtr,char *zeroStr,
  81.     StringPtr pasStr);
  82. extern pascal long StrToLong(XCmdBlockPtr paramPtr,Str31 *strPtr);
  83. extern pascal long StrToNum(XCmdBlockPtr paramPtr,Str31 *str);
  84. extern pascal Boolean StrToBool(XCmdBlockPtr paramPtr,Str31 *str);
  85. #ifdef extended
  86. extern pascal void StrToExt(XCmdBlockPtr paramPtr,Str31 *str,
  87.     extended *myext);
  88. #endif
  89. extern pascal void LongToStr(XCmdBlockPtr paramPtr,long posNum,
  90.     Str31 *mystr);
  91. extern pascal void NumToStr(XCmdBlockPtr paramPtr,long num,Str31 *mystr);
  92. extern pascal void NumToHex(XCmdBlockPtr paramPtr,long num,short nDigits,
  93.     Str31 *mystr);
  94. extern pascal void BoolToStr(XCmdBlockPtr paramPtr,Boolean bool,
  95.     Str31 *mystr);
  96. #ifdef extended
  97. extern pascal void ExtToStr(XCmdBlockPtr paramPtr,extended *myext,
  98.     Str31 *mystr);
  99. #endif
  100. extern pascal Handle GetGlobal(XCmdBlockPtr paramPtr,StringPtr globName);
  101. extern pascal void SetGlobal(XCmdBlockPtr paramPtr,StringPtr globName,
  102.     Handle globValue);
  103. extern pascal Handle GetFieldByName(XCmdBlockPtr paramPtr,
  104.     Boolean cardFieldFlag,StringPtr fieldName);
  105. extern pascal Handle GetFieldByNum(XCmdBlockPtr paramPtr,
  106.     Boolean cardFieldFlag,short fieldNum);
  107. extern pascal Handle GetFieldByID(XCmdBlockPtr paramPtr,
  108.     Boolean cardFieldFlag,short fieldID);
  109. extern pascal void SetFieldByName(XCmdBlockPtr paramPtr,
  110.     Boolean cardFieldFlag,StringPtr fieldName,Handle fieldVal);
  111. extern pascal void SetFieldByNum(XCmdBlockPtr paramPtr,
  112.     Boolean cardFieldFlag,short fieldNum,Handle fieldVal);
  113. extern pascal void SetFieldByID(XCmdBlockPtr paramPtr,Boolean cardFieldFlag,
  114.     short fieldID,Handle fieldVal);
  115. extern pascal Boolean StringEqual(XCmdBlockPtr paramPtr,Str31 *str1,
  116.     Str31 *str2);
  117. extern pascal void ReturnToPas(XCmdBlockPtr paramPtr,Ptr zeroStr,
  118.     StringPtr pasStr);
  119. extern pascal void ScanToReturn(XCmdBlockPtr paramPtr,Ptr *scanHndl);
  120. extern pascal void ScanToZero(XCmdBlockPtr paramPtr,Ptr *scanHndl);
  121.  
  122.  
  123.  
  124.  
  125.